#include "Cursor.h"

const char *imgCursorRotar[] = {
  "    56    32        3            1",
  "X c None",
  ". c #ffffff",
  "  c None",
  "        XXXXXXXXXXXXXXX            	",
  "      XX...............XX       		",
  "    XX...XXXXXXXXXXX....XX      		",
  "   XX...XX          XX....XX         ",
  "  XX....X            XX....XX       	",
  "   X...X              XX....XX  		",
  "    XXX            XXXXX....XXXXX 	",
  "                    X..........X		",
  "                     X........X 		",
  "                      X......X		",
  "                       X....X	    ",
  "                        X..X			",
  "                         XX			",
  "             						",
  "               						",
  "                                		",
  "                             		",
  "      XX                     		",
  "     X..X                  			",
  "    X....X                    		",
  "   X......X                     		",
  "  X........X                  		",
  " XXXX....XXXX         	  XXXX  	",
  "   XX....XX         	    XX....X 	",
  "    XX....XX            XX....XX   	",
  "     XX....XX          XX....XX    	",
  "      XX....XXXXXXXXXXXX....XX      	",
  "       XX..................XX     	",
  "        XXXXXXXXXXXXXXXXXXX          ",
  "                                		",
  "                                		",
  "                                		",
  "                                		",
  "0,0"
};



const char *imgCursorComun[] = {
  "    32    32        3            1",
  "X c #000000",
  ". c #ffffff",
  "  c None",
  "X                               ",
  "XX                              ",
  "X.X                             ",
  "X..X                            ",
  "X...X                           ",
  "X....X                          ",
  "X.....X                         ",
  "X......X                        ",
  "X.......X                       ",
  "X........X                      ",
  "X.....XXXXX                     ",
  "X..X..X                         ",
  "X.X X..X                        ",
  "XX  X..X                        ",
  "X    X..X                       ",
  "     X..X                       ",
  "      X..X                      ",
  "      X..X                      ",
  "       XX                       ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "                                ",
  "0,0"
};

SDL_Cursor* Cursor::crearCursor(const char *cursor[])
{
  int i, row, col;
  Uint8 data[4*32];
  Uint8 mask[4*32];
  int hot_x, hot_y;

  i = -1;
  for ( row=0; row<32; ++row ) {
    for ( col=0; col<32; ++col ) {
      if ( col % 8 ) {
       data[i] <<= 1;
        mask[i] <<= 1;
      } else {
        ++i;
        data[i] = mask[i] = 0;
      }
      switch (cursor[4+row][col]) {
        case 'X':
          data[i] |= 0x01;
          mask[i] |= 0x01;
          break;
        case '.':
          mask[i] |= 0x01;
          break;
        case ' ':
          break;
      }
    }
  }
  sscanf(cursor[4+row], "%d,%d", &hot_x, &hot_y);
  return SDL_CreateCursor(data, mask, 32, 32, 0, 0);
}

SDL_Cursor* Cursor::obtenerCursorRotar(){
	return cursorRotar;
}

SDL_Cursor* Cursor::obtenerCursorComun(){
	return cursorComun;
}


Cursor::Cursor() {
	cursorComun= this->crearCursor(imgCursorComun);
	cursorRotar = this->crearCursor(imgCursorRotar);
}

Cursor::~Cursor() {
}

